package com.hsgene.user.dto.user;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hsgene.common.util.qiniu.QiniuResourceSerializer;
import com.hsgene.common.util.web.session.UserSession;
import com.hsgene.user.dto.user.manager.OperationAccountExtraDto;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户信息Dto
 *
 * @author wangbing
 * @version 1.0, 2018/10/16
 */
public class GeneticTestingUserDto implements Serializable {

    private static final long serialVersionUID = 3851664166222136674L;
    /**
     * 逻辑主键
     */
    private String id;

    /**
     * 昵称
     */
    private String nick;

    /**
     * 登录名
     */
    private String name;

    /**
     * 密码
     */
    private String password;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 电话号码
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 头像
     */
    @JsonSerialize(using = QiniuResourceSerializer.class)
    private String avatar;

    /**
     * 用户类型（1-地服  2-医生  3-C端用户  4—机构用户）
     */
    private Integer userType;

    /**
     * 创建时间
     */
    private Date createDateTime;

    /**
     * 更新时间
     */
    private Date updateDateTime;

    /**
     * 用户等级
     */
    private Integer userLevel;

    /**
     * 用户性别（2-代表男性  1-代表女性）
     */
    private Integer gender;

    /**
     * 积分
     */
    private Integer integral;

    /**
     * 默认头像（小程序微信未授权）
     */
    private String defaultAvatar;

    /**
     * 后台管理员用户附加信息
     */
    private OperationAccountExtraDto extra;

    /**
     * 自定义用户Session
     */
    private UserSession userSession;

    /**
     * 是否是在新版本第一次登录（0：否，1：是）
     */
    private Integer newVersinFirstLogin = 0;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getNick() {
        return nick;
    }

    public void setNick(String nick) {
        this.nick = nick;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public Integer getUserType() {
        return userType;
    }

    public void setUserType(Integer userType) {
        this.userType = userType;
    }

    public Date getCreateDateTime() {
        return createDateTime;
    }

    public void setCreateDateTime(Date createDateTime) {
        this.createDateTime = createDateTime;
    }

    public Date getUpdateDateTime() {
        return updateDateTime;
    }

    public void setUpdateDateTime(Date updateDateTime) {
        this.updateDateTime = updateDateTime;
    }

    public Integer getUserLevel() {
        return userLevel;
    }

    public void setUserLevel(Integer userLevel) {
        this.userLevel = userLevel;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public Integer getIntegral() {
        return integral;
    }

    public void setIntegral(Integer integral) {
        this.integral = integral;
    }

    public String getDefaultAvatar() {
        return defaultAvatar;
    }

    public void setDefaultAvatar(String defaultAvatar) {
        this.defaultAvatar = defaultAvatar;
    }

    public OperationAccountExtraDto getExtra() {
        return extra;
    }

    public void setExtra(OperationAccountExtraDto extra) {
        this.extra = extra;
    }

    public UserSession getUserSession() {
        return userSession;
    }

    public void setUserSession(UserSession userSession) {
        this.userSession = userSession;
    }

    public Integer getNewVersinFirstLogin() {
        return newVersinFirstLogin;
    }

    public void setNewVersinFirstLogin(Integer newVersinFirstLogin) {
        this.newVersinFirstLogin = newVersinFirstLogin;
    }
}
